<?php
class ClientsController extends AppController {

	var $name = 'Clients';
	var $components = array('Email'); //  use component email 
	var $uses = array('User','Client','Person','ClientsUser','Update','Rol','Specialties','RolsUser','SpecialtiesUser','Typodocument','Country','Plan','ClientsPlan','Referer');
    var $helpers = array('Xml');

    function beforeFilter () {
        parent::beforeFilter();
		$this->Auth->allow('add','upgrade','activate');

		// Aplico el Layout segun la Vista o si es AJAX
		if ($this->RequestHandler->isAjax()) {
			$this->layout = 'ajax';
		}else{
			// Cambio la Vista por la del Rol
			$this->layout = strtolower($this->Session->read('VistaActual'));
		}
    }

	function download() {
		$this->_accede('exporta_datos');
	}

	function guardar() {

		$this->autoRender=false;
	
		$ArchivoDestino = str_replace(" ","_",$this->Session->read('Client.name')).'.dat';
		$DestinoFinal   = ROOT.DS.APP_DIR.DS.'webroot'.DS.'files'.DS.'temp';
		$sfile_txt      = $DestinoFinal.DS.$ArchivoDestino;
		
		$fp=fopen($sfile_txt,"w");

		
		//----------------------------------------------------------------
		//                             Clientes
		//----------------------------------------------------------------
		$datos = $this->Client->find('all', array(
						'conditions' => array(
										'Client.id' => $this->Session->read('ClientesUsuarioLogueado.id')
						) ));
		$Pacientes = $datos[0]['ClientsPerson'];
		$Medicos   = $datos[0]['ClientsUser'];
		$datos = "Cliente: ".json_encode($datos)."\n";
		fwrite($fp,$datos);		

		//----------------------------------------------------------------
		//                             Agenda
		//----------------------------------------------------------------
		$this->loadModel('Agenda');
		$datos = $this->Agenda->find('all', array(
						'conditions' => array(
										'Agenda.client_id' => $this->Session->read('ClientesUsuarioLogueado.id')
						), 'recursive' => 3

						));
		//pr($datos);
		$datos = "Agenda: ".json_encode($datos)."\n";
		fwrite($fp,$datos);				
		

		//----------------------------------------------------------------
		//                             Turnos
		//----------------------------------------------------------------
		$this->loadModel('Turn');
		$this->Turn->unbindModel( array('belongsTo' => array('Client', 'User','Person') ) );
		$datos = $this->Turn->find('all', array(
						'conditions' => array(
										'Turn.client_id' => $this->Session->read('ClientesUsuarioLogueado.id')
						), 'recursive' => 1

						));
		//pr($datos);
		$datos = "Turnos: ".json_encode($datos)."\n";
		fwrite($fp,$datos);				

		
		//----------------------------------------------------------------
		//                             Person->Pacientes
		//----------------------------------------------------------------
		$this->loadModel('Person');
		$this->loadModel('Evolution');
//		$this->loadModel('Turn');
		$this->loadModel('PeopleVademecum');
		$this->loadModel('PeopleProblem');
		$this->loadModel('PeopleSign');
		$this->loadModel('Adjunto');
		$this->loadModel('Result');
		$this->loadModel('PeoplePractice');
		$this->loadModel('PeopleRecomendation');
		foreach($Pacientes as $paciente) {
			$paciente_id = $paciente['person_id'];
			$this->Person->unbindModel( array('hasAndBelongsToMany' => array('Client') ) );
			$this->Person->unbindModel( array('hasMany' => array('Turn') ) );
			$this->Evolution->unbindModel( array('belongsTo' => array('Client', 'User','Person') ) );
//			$this->Turn->unbindModel( array('belongsTo' => array('Client', 'User','Person','Stateturn','Staterecord') ) );
			$this->PeopleVademecum->unbindModel( array('belongsTo' => array('Client', 'User','Person','Staterecord') ) );
			$this->PeopleProblem->unbindModel( array('belongsTo' => array('Client', 'User','Person','Staterecord') ) );
			$this->PeoplePractice->unbindModel( array('belongsTo' => array('Client', 'User','Person','Staterecord') ) );
			$this->PeopleRecomendation->unbindModel( array('belongsTo' => array('Client', 'User','Person','Staterecord') ) );
			$this->Result->unbindModel( array('belongsTo' => array('Client', 'User','Person','Staterecord') ) );
			$this->PeopleSign->unbindModel( array('belongsTo' => array('Client', 'User','Person','Staterecord') ) );			
			$this->Adjunto->unbindModel( array('belongsTo' => array('User','Person' ) ) );			
			$this->Person->bindModel( array('hasMany' => array(
														'Adjunto' => array(
																'className' => 'Adjunto',
																'foreignKey' => 'person_id'
																),
															
														'InsurancesPerson' => array(
																'className' => 'InsurancesPerson',
																'foreignKey' => 'person_id'
																)
															) 
														) );
			$datos = $this->Person->find('all', array( 'conditions' => array( 'Person.id' => $paciente_id), 'recursive' => 2, ) );
//			pr($datos);
			$datos = "Paciente: ".json_encode($datos)."\n";
			fwrite($fp,$datos);				
		}
		
		//----------------------------------------------------------------
		//                             Users->Medicos
		//----------------------------------------------------------------
		foreach($Medicos as $medico) {
			$medico_id = $medico['user_id'];
			
			$this->User->unbindModel( array('hasMany' => array('Agenda','Combo','Estadistica', 'Evolution', 'License','Person','PeoplePractice','PeopleProblem','PeopleRecomendation','PeopleSign','PeopleVademecum','Problem','Turn','SpecialtiesUser','Result','Segment' ) ) );			
			$datos = $this->User->find('all', array( 'conditions' => array( 'User.id' => $medico_id), 'recursive' => 2, ) );
//			pr($datos);
			$datos = "Medicos: ".json_encode($datos)."\n";
			fwrite($fp,$datos);				
		}
		

		fclose($fp);


		header("Content-type: application/force-download"); 
		header("Cache-Control: public");
		header("Content-Description: File Transfer");
		header("Content-Disposition: attachment; filename='$ArchivoDestino'");
		header("Content-Transfer-Encoding: binary");
		readfile($sfile_txt);
		
		die();

	}

	function activate($email_encode = '') {

		if(empty($email_encode)) { die(); }

		$email = base64_decode($email_encode);
		$this->Client->recursive = -1;
		$Client = $this->Client->findByEmail($email);

		if( isset($Client) and $Client['Client']['stateclient_id']==2 ){

			// Actualizo el estado del cliente			
			$this->Client->id = $Client['Client']['id'];
			$this->Client->saveField('stateclient_id', 1 );

			$this->Session->setFlash(__('La cuenta se ha activado.', true));	
			$this->redirect('/users/login');
			exit();
		}else{
			$this->Session->setFlash(__('La cuenta ya se encuentra activada.', true));	
			$this->redirect('/users/login');
			exit();
		}
	}


	function view($id = null, $tab_activa = null) {
		$this->Client->recursive = -1;

		// Si se quiere ver un Cliente diferente al Logueado
		if($this->Session->read('ClientesUsuarioLogueado.id') != $id){
			$this->redirect('/clients/view/'.$this->Session->read('ClientesUsuarioLogueado.id').'/2');
			exit;
		}

		if (!$id) {
			$this->Session->setFlash(__('Cliente inválido', true), 'default', array('class' => 'error-message'));
			$this->redirect('/clients/view/'.$this->Session->read('ClientesUsuarioLogueado.id').'/2');
			exit;
		}

		if (!$tab_activa) {
			$tab_activa = 2; // 1ra
		}

		$countries = $this->Country->find('list', array('order' => array('Country.name')));
		$this->set(compact('countries'));

		$this->set('tab_activa', $tab_activa);
		$this->set('client', $this->Client->read(null, $id));
	}

	function add( $referer_id='' ) {
        $this->layout = 'default_front';
		
		

		$Client_email_readonly = '';

		// Si el email del Cliente existe, lo guardo para no perder la referencia	
		if(isset($this->data['Client']['email'])){
			$Client_email_ref = $this->data['Client']['email'];
		}else{
			$Client_email_ref = '';	
		}

		//- Si fue referido, obtengo el email
		if (!empty($referer_id) AND $referer_id != "5069a744-0920-4cde-af7d-50550afe9904"){	 // Si no es el DUMMY
			$this->loadModel('Referer');
			$Referer = $this->Referer->read(null,$referer_id);

			if (!empty($Referer) AND $Referer['Referer']['cliente_referido_id'] == 0) { // Si todavía nunca se uso la RECOMENDACION
				$Client_email_ref = $Referer['Referer']['email_referido'];
				$Client_email_readonly = 'readonly';
			}
		}
		
		if (!empty($this->data)) {

// print_r($this->data);
// exit;

			/*----------------------------------------------------------------------------*/
			/* Si la contraseña esta vacia												  */
			/*----------------------------------------------------------------------------*/
				
				if($this->data['User']['password'] == "fc9323caa6805a726839002843cf064fef98fdf4"){
					$this->data['User']['password'] = "";
				}

			/*----------------------------------------------------------------------------*/
			/* Defino el Registro del Usuario											  */
			/*----------------------------------------------------------------------------*/

				$this->User->create();

				$this->User->set(array(
					'username'         => $this->data['User']['username'],
					'password'         => $this->data['User']['password'],
					'name'             => $this->data['User']['name'],
					'lastname'         => $this->data['User']['lastname'],
					'email'            => $this->data['User']['email'],
					'fecha_nacimiento' => $this->data['User']['fecha_nacimiento'],
					'typodocument_id'  => $this->data['User']['typodocument_id'],
					'nro_documento'    => $this->data['User']['nro_documento'],
					'country_id'       => $this->data['User']['country_id'],
					'telefono'         => $this->data['User']['telefono'],
				));
				

			/*----------------------------------------------------------------------------*/
			/* Defino el Registro del Cliente											  */
			/*----------------------------------------------------------------------------*/

				$this->Client->create();

				$this->Client->set(array(
					'name'           => $this->data['Client']['name'],
					'email'          => $this->data['Client']['email'],
					'country_id'     => $this->data['Client']['country_id'],
					'telefono'       => $this->data['Client']['telefono'],
					'direccion'      => $this->data['Client']['direccion'],
					'provincia'      => $this->data['Client']['provincia'],
					'localidad'      => $this->data['Client']['localidad'],										
					'default_vademecum' => 'vademecums',										
					'stateclient_id' => 2 // Inactivo
				));

			/*----------------------------------------------------------------------------*/

			// Si está el Formulario Validado
			if($this->User->validates() AND $this->Client->validates()) { 

				/*----------------------------------------------------------------------------*/
				/* Cargo el Cliente															  */
				/*----------------------------------------------------------------------------*/
				

				if ($this->Client->save()) {

					// Obtengo el ID cargado
					$client_id_nuevo = $this->Client->id;
					
					//------------------------------------------------------------------------
					//                                            Asigno Vademecum por default
					//------------------------------------------------------------------------
					$this->loadModel('ClientsVademecum');
					$this->ClientsVademecum->create();
					$this->ClientsVademecum->set(array(
								'id'           => 0,
								'client_id'    => $client_id_nuevo,
								'tabla'     => 'vademecums',
								'modelo'    => 'Vademecum'
							));
					$this->ClientsVademecum->save();	
					//---------------------------------------------------------------------END 
					
					

					if (!empty($Referer) AND $Referer['Referer']['cliente_referido_id'] == 0) { 
						// Si todavía nunca se uso la RECOMENDACION
						$Referer['Referer']['id']                  = $referer_id;
						$Referer['Referer']['cliente_referido_id'] = $client_id_nuevo;
						$this->Referer->save($Referer);
					}						

					/*----------------------------------------------------------------------------*/
					/*                                                   Asigno el Plan por Default                                                                                                   */
					/*----------------------------------------------------------------------------*/
						$this->ClientsPlan->create();

						// Obtengo el Plan por Default
						$plan_default  = $this->Plan->find('first',
								array(
										'conditions' => array('Plan.default_plan' => '1' )
									)
							);

						$this->ClientsPlan->set(array(
								'client_id'          => $client_id_nuevo,
								'plan_id'            => $plan_default['Plan']['id'],
								'fecha_alta'         => date("Y-m-d"),
								'activo'             => '1',
								'pacientes_actuales' => '0',
						));

						$this->ClientsPlan->save();
					/*----------------------------------------------------------------------------*/



				}else{ // Si no se pudo grabar el nuevo cliente
					$this->Session->setFlash(__('El consultorio seleccionado ya existe en el Sistema. Por favor, intente con uno diferente o contáctenos si el error persiste.', true), 'default', array('class' => 'error-message'));
					$this->data['User']['password'] = "";
				}

				if ($this->User->save()) {

					// Obtengo el ID cargado
					$user_id_nuevo = $this->User->id;






					// Defino los Roles Administrador y Profesional por default
					$arreglo_roles_asignar[0] = 1;
					$arreglo_roles_asignar[1] = 4;

					/*----------------------------------------------------------------------------*/
					/* Asigno los Roles al Usuario												  */
					/*----------------------------------------------------------------------------*/

						foreach($arreglo_roles_asignar AS $indice => $id_rol_aux){

							// Creo un Nuevo Registro
							$this->RolsUser->create();

							$this->RolsUser->set(array(
								'rol_id' => $id_rol_aux,
								'user_id' => $user_id_nuevo,
								'client_id' => $client_id_nuevo,
							));
							// Grabo el nuevo Usuario
							$this->RolsUser->save();
						}

					/*----------------------------------------------------------------------------*/
					/* Asigno las Especialidades al Usuario										  */
					/*----------------------------------------------------------------------------*/

						if(!empty($this->data['SpecialtiesUser']['specialty_id'])){
//							foreach($this->data['SpecialtiesUser']['specialty_id'] AS $indice => $id_especialidad_aux){

								// Creo un Nuevo Registro
								$this->SpecialtiesUser->create();

								$this->SpecialtiesUser->set(array(
									'specialty_id' => $this->data['SpecialtiesUser']['specialty_id'],
									'user_id' => $user_id_nuevo,
								));
								// Grabo el nuevo Usuario
								$this->SpecialtiesUser->save();

								$this->Specialties->id = $this->data['SpecialtiesUser']['specialty_id'];
								$nombre_especialidad_seleccionado = $this->Specialties->field('name');


//							}
						}else{
							$nombre_especialidad_seleccionado = "No seleccionada";
						}

					/*----------------------------------------------------------------------------*/

					// Creo un Nuevo Registro
					$this->ClientsUser->create();

					// Seteo datos que no vienen del Formulario
					$this->ClientsUser->set(array(
						'client_id' => $client_id_nuevo,
						'user_id' => $user_id_nuevo,
					));

					
					//-----------------------------------------------------------------------------
					//                                                             Creo la Sucursal
					//-----------------------------------------------------------------------------
					$this->loadModel('Sucursal');
					$Sucursal['id']         = 0;
					$Sucursal['client_id']  = $client_id_nuevo;
					$Sucursal['name']       = $this->data['Client']['name'];
					$Sucursal['direccion']  = $this->data['Client']['direccion'];
					$Sucursal['localidad']  = $this->data['Client']['localidad'];
					$Sucursal['provincia']  = $this->data['Client']['provincia'];
					$Sucursal['country_id'] = $this->data['Client']['country_id'];
					$Sucursal['telefono']   = $this->data['Client']['telefono'];
					$Sucursal['email']      = $this->data['Client']['email'];

					$this->Sucursal->create();
					$this->Sucursal->save($Sucursal);
					$sucursal_id = $this->Sucursal->id;
					
					$this->loadModel('SucursalsUser');
					$SucursalsUser['id'] = 0;
					$SucursalsUser['sucursal_id'] = $sucursal_id;
					$SucursalsUser['client_id']   = $client_id_nuevo;
					$SucursalsUser['user_id']     = $user_id_nuevo;
					$this->SucursalsUser->create();
					$this->SucursalsUser->save($SucursalsUser);
					$sucursal_user_id = $this->SucursalsUser->id;
					
					$this->loadModel('Agenda');
					$Agenda['id']             = 0;
					$Agenda['client_id']      = $client_id_nuevo;
					$Agenda['user_id']        = $user_id_nuevo;
					$Agenda['sucursal_id']    = $sucursal_id;
					$Agenda['nombre']         = 'Agenda de '.$this->data['User']['name'].' '.$this->data['User']['lastname'];
					$Agenda['alcance']        = 'pub';
					$Agenda['staterecord_id'] = '1';
					$this->Agenda->create();
					$this->Agenda->save($Agenda);
					


					/*----------------------------------------------------------------------------*/
					/* Pre-seteo el Financiador PARTICULAR										  */
					/*----------------------------------------------------------------------------*/
					$this->loadModel('InsurancesUser');
					$Insurances['id']           = 0;
					$Insurances['insurance_id'] = 478; // Particular
					$Insurances['plan']         = 'PARTICULAR';
					$Insurances['user_id']      = $user_id_nuevo;
					$Insurances['client_id']    = $client_id_nuevo;
					$this->InsurancesUser->create();
					$this->InsurancesUser->save($Insurances);
					$insurancesuser_id = $this->InsurancesUser->id;

					/*----------------------------------------------------------------------------*/
					/* Pre-seteo el Producto CONSULTA       									  */
					/*----------------------------------------------------------------------------*/
					$this->loadModel('ProductsUsers');
					$ProductsUsers['id']         = 0;
					$ProductsUsers['product_id'] = 1; // Consulta
					$ProductsUsers['user_id']    = $user_id_nuevo;
					$ProductsUsers['client_id']  = $client_id_nuevo;
					$this->ProductsUsers->create();
					$this->ProductsUsers->save($ProductsUsers);
					$productsusers_id = $this->ProductsUsers->id;

					/*----------------------------------------------------------------------------*/
					/* Pre-seteo la relacion  Insurances-Producto                                 */
					/*----------------------------------------------------------------------------*/
					$this->loadModel('InsurancesProduct');
					$InsurancesProduct['id']                = 0;
					$InsurancesProduct['insurance_user_id'] = $insurancesuser_id;
					$InsurancesProduct['product_id']        = 1; // Consulta
					$InsurancesProduct['user_id']           = $user_id_nuevo;
					$InsurancesProduct['client_id']         = $client_id_nuevo;
					$InsurancesProduct['importe']           = 100;
					$InsurancesProduct['money_id']          = 1;
					$this->InsurancesProduct->create();
					$this->InsurancesProduct->save($InsurancesProduct);

					/*----------------------------------------------------------------------------*/
					/* Pre-seteo el Formulario SOEP										  		  */
					/*----------------------------------------------------------------------------*/
					$this->loadModel('ClientsFormulario');
					$ClientsFormulario['id']           = 0;
					$ClientsFormulario['formulario_id']      = 14; // SOEP
					$ClientsFormulario['client_id']    = $client_id_nuevo;
					$this->ClientsFormulario->create();
					$this->ClientsFormulario->save($ClientsFormulario);

					/*----------------------------------------------------------------------------*/
					/* Pre-seteo el Formulario de Rutina de Laboratorio				  		  	  */
					/*----------------------------------------------------------------------------*/
					$ClientsFormulario['id']           = 0;
					$ClientsFormulario['formulario_id']      = 19; // Rutina de Laboratorio
					$ClientsFormulario['client_id']    = $client_id_nuevo;
					$this->ClientsFormulario->create();
					$this->ClientsFormulario->save($ClientsFormulario);

					if ($this->ClientsUser->save()) {

						/*----------------------------------------------------------------------------*/
						/* Obtengo datos para incorporar en el Email								  */
						/*----------------------------------------------------------------------------*/

								$this->Typodocument->id = $this->data['User']['typodocument_id'];
								$nombre_tipo_doc_seleccionado = $this->Typodocument->field('name');


								$this->Country->id = $this->data['User']['country_id'];
								$pais_usuario_seleccionado = $this->Country->field('name');

								$this->Country->id = $this->data['Client']['country_id'];
								$pais_cliente_seleccionado = $this->Country->field('name');

						/*----------------------------------------------------------------------------*/
						/* Mando el Email															  */
						/*----------------------------------------------------------------------------*/

							$array_cc[0] = 'SC<sebastian.ciancio@gmail.com>';
							$array_cc[1] = 'FP<federicopedernera@gmail.com>';
							$array_cc[2] = 'AL<alopez72@gmail.com>';

							$this->Email->to = 'Epicrisis<feedback@epicrisisweb.com>'; 
							$this->Email->cc = $array_cc;
							$this->Email->subject = 'Nuevo Cliente en Epicrisis'; 
							$this->Email->from = 'Epicrisis<feedback@epicrisisweb.com>'; 
							$this->Email->sendAs = 'html'; 

							/* SMTP Options */   

							$this->Email->smtpOptions = array(        
								'port'=>'465',
								'timeout'=>'30',
								'host' => 'ssl://smtp.gmail.com',
								'username'=>'feedback@epicrisisweb.com',
								'password'=>'fe9s5gk3mc8',
							);

							// Si se cambia este metodo de delivery NO FUNCIONA mandar varios mails a la vez
							$this->Email->delivery = 'smtp';

							$data = "<U><B>Nuevo Cliente en Epicrisis:</B></U><br><br>
								<h1>Datos del Consultorio</h1>
								<B>Nombre:</B>".$this->data['Client']['name']."<br>
								<B>Dirección:</B>".$this->data['Client']['direccion']."<br>
								<B>Localidad:</B>".$this->data['Client']['localidad']."<br>
								<B>Provincia:</B>".$this->data['Client']['provincia']."<br>
								<B>E-mail:</B>".$this->data['Client']['email']."<br>
								<B>Teléfono:</B>".$this->data['Client']['telefono']."<br>
								<B>País:</B>".$pais_cliente_seleccionado."<br>
								<br>
								<h1>Datos del Profesional</h1>
								<B>Apellido:</B>".$this->data['User']['lastname']."<br>
								<B>Nombre:</B>".$this->data['User']['name']."<br>
								<B>Especialidad:</B>".$nombre_especialidad_seleccionado."<br>
								<B>E-mail:</B>".$this->data['User']['email']."<br>
								<B>Fecha de Nacimiento:</B>".$this->data['User']['fecha_nacimiento']['day']."/".$this->data['User']['fecha_nacimiento']['month']."/".$this->data['User']['fecha_nacimiento']['year']."<br>
								<B>Documento:</B>".$nombre_tipo_doc_seleccionado." ".$this->data['User']['nro_documento']."<br>
								<B>País:</B>".$pais_usuario_seleccionado."<br>
								<B>Teléfono:</B>".$this->data['User']['telefono'];

							$this->Email->send($data);

						/*----------------------------------------------------------------------------
						//                                                Envía Mail de Activacion
						----------------------------------------------------------------------------*/

							// Inicializo el componente
							$this->Email->reset(); 

							$email_encode = base64_encode($this->data['Client']['email']);

							$array_bcc[0] = 'SC<sebastian.ciancio@gmail.com>';
							$array_bcc[1] = 'FP<federicopedernera@gmail.com>';
							$array_bcc[2] = 'AL<alopez72@gmail.com>';

							$this->Email->to = $this->data['Client']['email'].'<'.$this->data['Client']['email'].'>';
							$this->Email->bcc = $array_bcc;

							$this->Email->subject = 'Activacion de la Cuenta de Epicrisis'; 
							$this->Email->from = 'Epicrisis<feedback@epicrisisweb.com>'; 
							$this->Email->sendAs = 'html'; 

							/* SMTP Options */   

							$this->Email->smtpOptions = array(        
								'port'=>'465',
								'timeout'=>'30',
								'host' => 'ssl://smtp.gmail.com',
								'username'=>'feedback@epicrisisweb.com',
								'password'=>'fe9s5gk3mc8',
							);

							// Si se cambia este metodo de delivery NO FUNCIONA mandar varios mails a la vez
							$this->Email->delivery = 'smtp';
							
							$url = "http://www.epicrisisweb.com/clients/activate/$email_encode";

							$data = '
								<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
								<HTML><HEAD><TITLE>Epicrisis</TITLE>
								<META content="text/html; charset=utf-8" http-equiv=Content-Type>
								<STYLE type=text/css>
								<!--
								body { line-height: 1.5em;background:#E4DFD1;font-family: Arial,Helvetica,sans-serif;color:#333333;font-size:14px;width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0; }
								a:hover { color:#3C8DC5; }
								a { color: #1c85d5; text-decoration: underline }
								.greytext { font-family:verdana,arial,helvetica,sans-serif;font-size:10px;color:#666666;margin-top:20px auto;width:580px;padding:0 20px;line-height:16px; }
								.greytext a { color:#666666; }
								p {margin: 1em 0;line-height:1.5em; }
								img {outline:none; text-decoration:none; -ms-interpolation-mode: bicubic;}
								a img {border:none;}
								.image_fix {display:block;}
								#outlook a {padding:0;} /* Force Outlook to provide a "view in browser" menu link. */
								#backgroundTable {margin:0; padding:0; width:100% !important; line-height: 100% !important;background-color:#E4DFD1; }
								table td {border-collapse: collapse;}
								-->
								</STYLE>
								</HEAD>
								<BODY bgColor=#eedf10>
								<DIV><br>
								</DIV>
								<TABLE border=0 cellSpacing=0 cellPadding=0 width=620 align="center">
								  <TBODY> 
								  <TR> 
								    <TD bgColor=#ffffff align=left> 
								      <div style="BORDER-BOTTOM: #000 1px solid;   PADDING-RIGHT: 40px; BACKGROUND: #ffffff; background-color: #3C8DC5;"> 
								        <a href="http://www.epicrisisweb.com?s=activacion" target="_blank"><img border="0" alt="Epicrisis" src="http://www.epicrisisweb.com/images/epicrisis_st_powerpoint2.png" width="240" height="69" nosend="1"></a> 
								      </div>
								      <DIV 
								      style="BORDER-BOTTOM: #3C8DC5 4px solid;  PADDING-BOTTOM: 20px; PADDING-LEFT: 40px; PADDING-RIGHT: 40px; BACKGROUND: #ffffff; PADDING-TOP: 20px"> 
								        <P>Bienvenido a <b>Epicrisis</b> y esperamos que sea la herramienta para administrar las Historias Clínicas de sus pacientes!</P>
								        <div 
								      style="BORDER-BOTTOM: #efefef 1px solid; BORDER-LEFT: #efefef 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #f1f1f1; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #efefef 1px solid; BORDER-RIGHT: #efefef 1px solid; PADDING-TOP: 10px; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px 5px 5px 5px"> 
								          <p>Para comenzar la activaci&oacute;n de su cuenta debe entrar a la 
								            direcci&oacute;n:<br>
								            <a href="'.$url.'">'.$url.'</a>
								            </p>
								        </div>
								        <P><br>
								          <b><a href="http://www.epicrisisweb.com?s=activacion"><img 
								      style="FLOAT: right; MARGIN-LEFT: 1px" 
								      src="http://www.epicrisisweb.com/images/ribbon-gratis2.png" nosend="1" width="95" height="95" border="0"></a></b><B>&iquest;Qu&eacute; 
								          obtienes por el Servicio GRATUITO?</B></P>

								        <P><b>Epicrisis</b> tiene un plan que es <b>GRATUITO</b> hasta 50 pacientes 
								          y pone a disposici&oacute;n de los profesionales de la Salud un sistema 
								          de <b>administraci&oacute;n de padrones</b>, <b>reservas de turnos</b>, 
								          <b>listas de espera</b> e <b>historias cl&iacute;nicas electr&oacute;nicas</b> 
								          comparables con las grandes instituciones m&eacute;dicas. </P>
								        <P>El sistema es accesible desde Internet, por lo que no se necesita ninguna 
								          configuraci&oacute;n ni equipo especial, con solo visitar nuestro sitio 
								          <b>puede tener su consultorio</b> configurado <b>en pocos minutos</b>.</P>
								        <P>&nbsp;</P>
								        <P><B>&iquest;Todav&iacute;a tienes alguna duda?</B></P>
								        <P>No hay problema, te invitamos a que consultes nuestra secci&oacute;n 
								          de <a href="http://www.epicrisisweb.com/faq">ayuda</a> para conocer 
								          m&aacute;s sobre <b>Epicrisis</b> o nuestro <a href="http://www.epicrisisweb.com/blog/2012/07/04/hacia-una-historia-clinica-electronica-simple-util-y-adaptada-a-nuestras-necesidades/">Blog</a> 
								          donde publicamos periodicamente informaci&oacute;n de inter&eacute;s. 
								          Si tienes alguna otra consulta, no dudes en <a href="http://www.epicrisisweb.com/contacto">contactarnos</a>.</P>
								        <P>Saludos,<br>
								        </P>
								        <table width="100%" border="0" cellpadding="0" cellspacing="0">
								          <tr> 
								            <td width="18%" align="left" valign="middle"><a href="http://www.epicrisisweb.com?s=activacion"><img src="http://www.epicrisisweb.com/images/navidad/epicrisis_icon.png" width="81" height="81" border="0" /></a></td>
								            <td width="56%" style="color:#666; line-height:
								          16px"> 
								              <p style="color: #0E2CA9; font-weight: bold">Equipo de Epicrisis<br>
								                <a href="http://www.epicrisisweb.com?s=activacion" style="color:#666; font-weight: bold">www.epicrisisweb.com</a></p>
								            </td>
								            <td width="26%">Seguinos en:<br>
								              <a href="http://www.facebook.com/epicrisis"><img src="http://www.epicrisisweb.com/images/navidad/ico-facebook.png" width="40" height="39" border="0" /></a><a href="https://twitter.com/epicrisisweb"><img src="http://www.epicrisisweb.com/images/navidad/ico-twitter.png" width="40" height="39" border="0" /></a><a href="http://www.linkedin.com/company/2426422?trk=tyah"><img src="http://www.epicrisisweb.com/images/navidad/linkedin.jpg" width="40" height="40" border="0" /></a> 
								            </td>
								          </tr>
								        </table>
								      </DIV>
								    </TD>
								  </TR>
								  </TBODY>
								</TABLE>
								<TABLE border=0 cellSpacing=0 cellPadding=0 width=620 align="center">
								  <TBODY> 
								  <TR> 
								    <TD bgColor=#e4dfd1 align=left> 
								      <P class=greytext align="center">Epicrisisweb.com - <a href="http://www.epicrisisweb.com/contacto">Contacto</a> 
								        - <a href="http://www.epicrisisweb.com/nosotros">La Empresa</a> - <a href="http://www.epicrisisweb.com/politica">Aviso 
								        Legal</a> - <a href="http://www.epicrisisweb.com/politica">Pol&iacute;tica 
								        de privacidad</a> <br>
								      </P>
								    </TD>
								  </TR>
								  </TBODY>
								</TABLE>
								</BODY></HTML>
							';
							$this->Email->send($data);

						$this->Session->setFlash(__('Hemos enviado un mail de <b>activación de la cuenta</b> a la dirección de correo <b>'.$this->data['Client']['email'].'</b>. <br>Por favor revise el correo y siga las instrucciones.', true));	
						$this->redirect('/validacion');
						exit;
					} else {
						$this->Session->setFlash(__('El Consultorio no ha podido ser cargado. Por favor, intente nuevamente.', true), 'default', array('class' => 'error-message'));

					}

				}else{ // Si no se pudo grabar el nuevo usuario
					$this->Session->setFlash(__('El Consultorio no ha podido ser cargado. Por favor, intente nuevamente.', true), 'default', array('class' => 'error-message'));

				}


/*
				if ($this->Client->save($this->data)) {
					$this->Session->setFlash(__('La Cuenta ha sido creada', true));
					$this->redirect("/");
				} else {
					$this->Session->setFlash(__('La Cuenta no ha sido creada. Por favor, revise los datos ingresados.', true));
				}
*/
			}else{ // Si no está todo Validado
				$this->Session->setFlash(__('Verifique los datos ingresados...', true), 'default', array('class' => 'error-message'));
				$this->data['User']['password'] = "";
			}

		}
		
		// Si el Usuario es Referido
		$this->set('Client_email', $Client_email_ref);
		$this->set('Client_email_readonly', $Client_email_readonly);
		$this->set('referer_id', $referer_id);						
		
		$countries = $this->Client->Country->find('list', array('order' => array('Country.name')));
		$specialties = $this->User->Specialty->find('list', array('order' => array('Specialty.name')));
		$typodocuments = $this->Person->Typodocument->find('list', array('order' => array('Typodocument.name')));
		$this->set(compact('specialties','countries','typodocuments'));
	}

	function edit($id = null) {

		$this->_accede('modifica_datos_cliente');


		// Si se quiere ver un Cliente diferente al Logueado
		if($this->Session->read('ClientesUsuarioLogueado.id') != $id){
			$this->redirect('/clients/view/'.$this->Session->read('ClientesUsuarioLogueado.id').'/2');
			exit;
		}

		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid client', true), 'default', array('class' => 'error-message'));
			$this->redirect('/clients/view/'.$this->Session->read('ClientesUsuarioLogueado.id').'/2');
			exit;
		}
		if (!empty($this->data)) {

			//pr($this->data);die();
			//pr($this->Session->read('Client')); die();

			$logo = $_FILES['logo'];
			
			if( $logo['size']>0){ 
				$z             = $logo['name'];
				$NombreArchivo = $this->data['Client']['id'].'-'.$logo['name'];
				$this->data['Client']['logo'] = $NombreArchivo; 
				move_uploaded_file ($logo['tmp_name'], ROOT.DS.'app'.DS.'webroot'.DS.'uploads'.DS.$NombreArchivo);
			}
		
			if ($this->Client->save($this->data)) {
				$this->data = $this->Client->read(null,$this->data['Client']['id']);
				$this->Session->write('Client.custom_css',$this->data['Client']['custom_css']);
				$this->Session->write('Client.logo',$this->data['Client']['logo']);
				$this->Session->setFlash(__('El Cliente ha sido modificado', true));
				$this->redirect('/clients/view/'.$this->Session->read('ClientesUsuarioLogueado.id').'/2');
				exit;
			} else {
				$this->Session->setFlash(__('El Cliente no pudo ser modificado.', true), 'default', array('class' => 'error-message'));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Client->read(null, $id);
		}
		
		//-------------------------------------------------------------
		// Lee los css con los esquemas de colores disponibles
		//-------------------------------------------------------------
		$directorio = ROOT.DS.'app'.DS.'webroot'.DS.'css';
		$ficheros  = scandir($directorio, 1);
		$esquemas = array();
		foreach($ficheros as $clave=>$f){
			if( substr($f,0,15)=='epicrisis_color' ){
				list($nombre,$extension) = explode('.',$f);
				list($x,$y,$color) = explode('_',$nombre);
				$esquemas[$f] = $color;
			}
		}
		$this->set(compact('esquemas'));
		
		
		$countries = $this->Client->Country->find('list', array('order' => array('Country.name')));
		$this->set(compact('countries'));
	}
	
	
	function recomendar() {

		if ( !empty($this->data['Client']['email']) ){
			// pr($_SESSION); die();
			$referido_por                   = $_SESSION['Auth']['User']['name']." ".$_SESSION['Auth']['User']['lastname'];
			$Referer['id']                  = 0;	
			$Referer['user_id']             = $_SESSION['Auth']['User']['id'];
			$Referer['client_id']           = $_SESSION['Client']['id'];
			$Referer['email_referido']      = $this->data['Client']['email']; 	
			$Referer['cliente_referido_id'] = 0;
		
			$this->loadModel('Referer');
			if ($this->Referer->save($Referer)) {
				$this->Session->setFlash(__('Guardado correctamente', true));

					$referer_id = $this->Referer->id;
				
                    // Envio email al paciente con link a confirmación de turno
					$array_cc[0] = 'SC<sebastian.ciancio@gmail.com>';
					$array_cc[1] = 'FP<federicopedernera@gmail.com>';
					$array_cc[2] = 'AL<alopez72@gmail.com>';

					$this->Email->to = 'Epicrisis<'.$Referer['email_referido'].'>'; 
					$this->Email->bcc = $array_cc;
					$this->Email->subject = "Has recibido una recomendación de $referido_por"; 
					$this->Email->from = 'Epicrisis<info@epicrisisweb.com>'; 
					$this->Email->sendAs = 'html'; 

					/* SMTP Options */   

					$this->Email->smtpOptions = array(        
						'port'=>'465',
						'timeout'=>'30',
						'host' => 'ssl://smtp.gmail.com',
						'username'=>'feedback@epicrisisweb.com',
						'password'=>'fe9s5gk3mc8',
					);

					// Si se cambia este metodo de delivery NO FUNCIONA mandar varios mails a la vez
					$this->Email->delivery = 'smtp';

        			$data = '
						<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
						<HTML><HEAD><TITLE>Epicrisis</TITLE>
						<META content="text/html; charset=utf-8" http-equiv=Content-Type>
						<STYLE type=text/css>
						<!--
						body { line-height: 1.5em;background:#E4DFD1;font-family: Arial,Helvetica,sans-serif;color:#333333;font-size:14px;width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0; }
						a:hover { color:#3C8DC5; }
						a { color: #1c85d5; text-decoration: underline }
						.greytext { font-family:verdana,arial,helvetica,sans-serif;font-size:10px;color:#666666;margin-top:20px auto;width:580px;padding:0 20px;line-height:16px; }
						.greytext a { color:#666666; }
						p {margin: 1em 0;line-height:1.5em; }
						img {outline:none; text-decoration:none; -ms-interpolation-mode: bicubic;}
						a img {border:none;}
						.image_fix {display:block;}
						#outlook a {padding:0;} /* Force Outlook to provide a "view in browser" menu link. */
						#backgroundTable {margin:0; padding:0; width:100% !important; line-height: 100% !important;background-color:#E4DFD1; }
						table td {border-collapse: collapse;}
						-->
						</STYLE>
						</HEAD>
						<BODY bgColor=#eedf10>
						<DIV><br>
						</DIV>
						<TABLE border=0 cellSpacing=0 cellPadding=0 width=620 align="center">
						  <TBODY> 
						  <TR> 
						    <TD bgColor=#ffffff align=left> 
						      <div style="BORDER-BOTTOM: #000 1px solid;   PADDING-RIGHT: 40px; BACKGROUND: #ffffff; background-color: #3C8DC5;"> 
						        <a href="http://www.epicrisisweb.com?s=recomendacion" target="_blank"><img border="0" alt="Epicrisis" src="http://www.epicrisisweb.com/images/epicrisis_st_powerpoint2.png" width="240" height="69" nosend="1"></a> 
						      </div>
						      <DIV 
						      style="BORDER-BOTTOM: #3C8DC5 4px solid;  PADDING-BOTTOM: 20px; PADDING-LEFT: 40px; PADDING-RIGHT: 40px; BACKGROUND: #ffffff; PADDING-TOP: 20px"> 
						        <P><b><a href="http://www.epicrisisweb.com?s=recomendacion"><img 
						      style="FLOAT: right; MARGIN-LEFT: 1px; margin-top: -112px;" 
						      src="http://www.epicrisisweb.com/images/ribbon-gratis.png" nosend="1" width="50" height="107" border="0"></a></b>Queremos 
						          avisarte que <b>'.$referido_por.'</b> te ha recomendado que utilices <b>Epicrisis</b> 
						          como herramienta para administrar las Histor&iacute;as Cl&iacute;nicas 
						          Electr&oacute;nicas de tus pacientes!.</P>
						        <div 
						      style="BORDER-BOTTOM: #efefef 1px solid; BORDER-LEFT: #efefef 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #f1f1f1; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #efefef 1px solid; BORDER-RIGHT: #efefef 1px solid; PADDING-TOP: 10px; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px 5px 5px 5px"> 
						          <p>Para activar la recomendaci&oacute;n, haga click en el siguiente 
						            hiperv&iacute;nculo:<br>
						            <a href="http://www.epicrisisweb.com/clients/add/'.$referer_id.'">http://www.epicrisisweb.com/clients/add/'.$referer_id.'</a></p>
						        </div>
						        <P><B>&iquest;Qu&eacute; es Epicrisis?</B></P>
						        <P><b>Epicrisis</b> (<a href="http://www.epicrisisweb.com?s=recomendacion">www.epicrisisweb.com</a>) 
						          es la nueva herramienta que les permite a los Profesionales de la Salud 
						          poseer un Consultorio Virtual. </P>
						        <P>Con <b>Epicrisis</b> un Profesional podr&aacute; acceder en <b><i>cualquier 
						          momento y lugar</i></b> a su propia <b><i>Agenda de Turnos</i></b> y 
						          a las <b><i>Historias Cl&iacute;nicas Electr&oacute;nicas de sus Pacientes</i></b> 
						          desde cualquier computadora con conexi&oacute;n a Internet.</P>
						        <p><b>Epicrisis</b> est&aacute; concebido para los Profesionales de la 
						          Salud por colegas que creen que se puede brindar una Mejor Atenci&oacute;n 
						          a los Pacientes mediante el uso de las Tecnolog&iacute;as de la Comunicaci&oacute;n. 
						        </p>
						        <div 
						      style="BORDER-BOTTOM: #efefef 1px solid; BORDER-LEFT: #efefef 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #f1f1f1; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #efefef 1px solid; BORDER-RIGHT: #efefef 1px solid; PADDING-TOP: 10px; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px 5px 5px 5px"> 
						          <p><b>Epicrisis</b> ha sido premiada por el Grupo Telefonica con la 
						            iniciativa <a href="http://wayra.org/es/startup/epicrisis?field_startup_area_del_proyecto_tid=7">Wayra 
						            Argentina</a> como una de las mejores 10 StartUps de Argentina en 
						            2011. Tambi&eacute;n es finalista de la competencia Internacional 
						            <a href="http://desafiointel.com/anuncios/">Desafio Intel 2012</a>.</p>
						        </div>
						        <p><b><a href="http://www.epicrisisweb.com?s=recomendacion"><img 
						      style="FLOAT: right; MARGIN-LEFT: 1px" 
						      src="http://www.epicrisisweb.com/images/ribbon-gratis2.png" nosend="1" width="95" height="95" border="0"></a></b></p>
						        <P><B>&iquest;Qu&eacute; obtienes por el Servicio GRATUITO?</B></P>
						        <P><b>Epicrisis</b> tiene un plan que es <b>GRATUITO</b> hasta 50 pacientes 
						          y pone a disposici&oacute;n de los profesionales de la Salud un sistema 
						          de <b>administraci&oacute;n de padrones</b>, <b>reservas de turnos</b>, 
						          <b>listas de espera</b> e <b>historias cl&iacute;nicas electr&oacute;nicas</b> 
						          comparables con los de las grandes instituciones acad&eacute;micas del 
						          pa&iacute;s. </P>
						        <P>El sistema es accesible desde Internet, por lo que no se necesita ninguna 
						          configuraci&oacute;n ni equipo especial, con solo visitar nuestro sitio 
						          <b>puede tener su consultorio</b> configurado <b>en pocos minutos</b>.</P>
						        <P>&nbsp;</P>
						        <P><B>&iquest;Todav&iacute;a tienes alguna duda?</B></P>
						        <P>No hay problema, te invitamos a que consultes nuestra secci&oacute;n 
						          de <a href="http://www.epicrisisweb.com/faq">ayuda</a> para conocer 
						          m&aacute;s sobre Epicrisis. Si tienes alguna otra consulta, no dudes 
						          en <a href="http://www.epicrisisweb.com/contacto">contactarnos</a>.</P>
						        <P>Saludos,<br>
						        </P>
						        <table width="100%" border="0" cellpadding="0" cellspacing="0">
						          <tr> 
						            <td width="18%" align="left" valign="middle"><a href="http://www.epicrisisweb.com?s=recomendacion"><img src="http://www.epicrisisweb.com/images/navidad/epicrisis_icon.png" width="81" height="81" border="0" /></a></td>
						            <td width="56%" style="color:#666; line-height:
						          16px"> 
						              <p style="color: #0E2CA9; font-weight: bold">Equipo de Epicrisis<br>
						                <a href="http://www.epicrisisweb.com?s=recomendacion" style="color:#666; font-weight: bold">www.epicrisisweb.com</a></p>
						            </td>
						            <td width="26%">Seguinos en:<br>
						              <a href="http://www.facebook.com/epicrisis"><img src="http://www.epicrisisweb.com/images/navidad/ico-facebook.png" width="40" height="39" border="0" /></a><a href="https://twitter.com/epicrisisweb"><img src="http://www.epicrisisweb.com/images/navidad/ico-twitter.png" width="40" height="39" border="0" /></a><a href="http://www.linkedin.com/company/2426422?trk=tyah"><img src="http://www.epicrisisweb.com/images/navidad/linkedin.jpg" width="40" height="40" border="0" /></a> 
						            </td>
						          </tr>
						        </table>
						      </DIV>
						    </TD>
						  </TR>
						  </TBODY>
						</TABLE>
						<TABLE border=0 cellSpacing=0 cellPadding=0 width=620 align="center">
						  <TBODY> 
						  <TR> 
						    <TD bgColor=#e4dfd1 align=left> 
						      <P class=greytext align="center">Epicrisisweb.com - <a href="http://www.epicrisisweb.com/contacto">Contacto</a> 
						        - <a href="http://www.epicrisisweb.com/nosotros">La Empresa</a> - <a href="http://www.epicrisisweb.com/politica">Aviso 
						        Legal</a> - <a href="http://www.epicrisisweb.com/politica">Pol&iacute;tica 
						        de privacidad</a> <br>
						      </P>
						    </TD>
						  </TR>
						  </TBODY>
						</TABLE>
						</BODY></HTML>
        			';

					if ($this->Email->send($data)) {
						$this->Session->setFlash(__('Se envio el email al recomendado quien deberá confirmar para hacer efectiva la promoción.', true));
					} else {
						$this->Session->setFlash(__('No se pudo enviar el email de recomendación.', true), 'default', array('class' => 'error-message'));

					}
				
				
			} else {
				$this->Session->setFlash(__('No se pudo guardar el formulario.', true));
			}  
			
		
		
		}

	}
	

	function promociones() {

		if ( !empty($this->data['Client']['codigopromo']) ){
			// pr($_SESSION); die();
			$arreglo_promocion['user_id']             = $_SESSION['Auth']['User']['id'];
			$arreglo_promocion['user_fullname']       = $_SESSION['Auth']['User']['name']." ".$_SESSION['Auth']['User']['lastname'];			
			$arreglo_promocion['client_id']           = $_SESSION['Client']['id'];
			$arreglo_promocion['codigo_promocion']    = $this->data['Client']['codigopromo']; 	
		
			// Si la promocion es válida
			if (!empty($arreglo_promocion['codigo_promocion']) AND $arreglo_promocion['codigo_promocion'] == "AU2Q-N2CH-FRM5-NGR8-KAZ9") {

				$this->Session->setFlash(__('Los datos fueron enviados y está en proceso de verificación.', true));

                    // Envio email al paciente con link a confirmación de turno
					$array_cc[0] = 'SC<sebastian.ciancio@gmail.com>';
					$array_cc[1] = 'FP<federicopedernera@gmail.com>';
					$array_cc[2] = 'AL<alopez72@gmail.com>';

					$this->Email->to = $array_cc;
					//$this->Email->bcc = $array_cc;
					$this->Email->subject = $arreglo_promocion['user_fullname']." ha activado una promoción en Epicrisis"; 
					$this->Email->from = 'Epicrisis<info@epicrisisweb.com>'; 
					$this->Email->sendAs = 'html'; 

					/* SMTP Options */   

					$this->Email->smtpOptions = array(        
						'port'=>'465',
						'timeout'=>'30',
						'host' => 'ssl://smtp.gmail.com',
						'username'=>'feedback@epicrisisweb.com',
						'password'=>'fe9s5gk3mc8',
					);

					// Si se cambia este metodo de delivery NO FUNCIONA mandar varios mails a la vez
					$this->Email->delivery = 'smtp';

        			$data = '
						<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
						<HTML><HEAD><TITLE>Epicrisis</TITLE>
						<META content="text/html; charset=utf-8" http-equiv=Content-Type>
						<STYLE type=text/css>
						<!--
						body { line-height: 1.5em;background:#E4DFD1;font-family: Arial,Helvetica,sans-serif;color:#333333;font-size:14px;width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0; }
						a:hover { color:#3C8DC5; }
						a { color: #1c85d5; text-decoration: underline }
						.greytext { font-family:verdana,arial,helvetica,sans-serif;font-size:10px;color:#666666;margin-top:20px auto;width:580px;padding:0 20px;line-height:16px; }
						.greytext a { color:#666666; }
						p {margin: 1em 0;line-height:1.5em; }
						img {outline:none; text-decoration:none; -ms-interpolation-mode: bicubic;}
						a img {border:none;}
						.image_fix {display:block;}
						#outlook a {padding:0;} /* Force Outlook to provide a "view in browser" menu link. */
						#backgroundTable {margin:0; padding:0; width:100% !important; line-height: 100% !important;background-color:#E4DFD1; }
						table td {border-collapse: collapse;}
						-->
						</STYLE>
						</HEAD>
						<BODY bgColor=#eedf10>
						<DIV><br>
						</DIV>
						<TABLE border=0 cellSpacing=0 cellPadding=0 width=620 align="center">
						  <TBODY> 
						  <TR> 
						    <TD bgColor=#ffffff align=left> 
						      <div style="BORDER-BOTTOM: #000 1px solid;   PADDING-RIGHT: 40px; BACKGROUND: #ffffff; background-color: #3C8DC5;"> 
						        <a href="http://www.epicrisisweb.com?s=recomendacion" target="_blank"><img border="0" alt="Epicrisis" src="http://www.epicrisisweb.com/images/epicrisis_st_powerpoint2.png" width="240" height="69" nosend="1"></a> 
						      </div>
						      <DIV 
						      style="BORDER-BOTTOM: #3C8DC5 4px solid;  PADDING-BOTTOM: 20px; PADDING-LEFT: 40px; PADDING-RIGHT: 40px; BACKGROUND: #ffffff; PADDING-TOP: 20px"> 
						        <P><b><a href="http://www.epicrisisweb.com?s=recomendacion"><img 
						      style="FLOAT: right; MARGIN-LEFT: 1px; margin-top: -112px;" 
						      src="http://www.epicrisisweb.com/images/ribbon-gratis.png" nosend="1" width="50" height="107" border="0"></a></b>Queremos 
						          avisarte que <b>'.$arreglo_promocion['user_fullname'].'</b> ha enviado un código de promoción de <b>Epicrisis</b>.</P>
						        <div 
						      style="BORDER-BOTTOM: #efefef 1px solid; BORDER-LEFT: #efefef 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #f1f1f1; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #efefef 1px solid; BORDER-RIGHT: #efefef 1px solid; PADDING-TOP: 10px; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px 5px 5px 5px"> 
						          <p>Los datos son:<br>
						          	ID Usuario: '.$arreglo_promocion['user_id'].'<br/>
						          	Usuario: '.$arreglo_promocion['user_fullname'].'<br/>
						          	ID Cliente: '.$arreglo_promocion['client_id'].'<br/>
						          	COD. Promoción: '.$arreglo_promocion['codigo_promocion'].'<br/>
									</p>
						        </div>

						      </DIV>
						    </TD>
						  </TR>
						  </TBODY>
						</TABLE>
						<TABLE border=0 cellSpacing=0 cellPadding=0 width=620 align="center">
						  <TBODY> 
						  <TR> 
						    <TD bgColor=#e4dfd1 align=left> 
						      <P class=greytext align="center">Epicrisisweb.com - <a href="http://www.epicrisisweb.com/contacto">Contacto</a> 
						        - <a href="http://www.epicrisisweb.com/nosotros">La Empresa</a> - <a href="http://www.epicrisisweb.com/politica">Aviso 
						        Legal</a> - <a href="http://www.epicrisisweb.com/politica">Pol&iacute;tica 
						        de privacidad</a> <br>
						      </P>
						    </TD>
						  </TR>
						  </TBODY>
						</TABLE>
						</BODY></HTML>
        			';

        			$this->Email->send($data);
				
			} else {
				$this->Session->setFlash(__('El código de promoción no es válido.', true), 'default', array('class' => 'error-message'));
			}  
		}else{
			$this->Session->setFlash(__('El código de promoción no fue ingresado.', true), 'default', array('class' => 'error-message'));
		}

	}
	

	function pagos(){
	
		$client_id = $_SESSION['Client']['id'];
		$this->loadModel('ClientsPlan');
		$this->loadModel('Plan');
		$this->loadModel('Money');
		$this->loadModel('Payment');

	
		$this->ClientsPlan->recursive = 2;
		$options   = array('conditions' => array('ClientsPlan.client_id' => "$client_id", 'ClientsPlan.activo'=>'1') );
		$PlanActivo = $this->ClientsPlan->find('first',$options);
		$this->set('PlanActivo',$PlanActivo);
		$this->set('client_id',$client_id);

		$Pagos = array();
		
		if (!empty($PlanActivo['ClientsPlan'] ) ) {
			$this->Payment->recursive = 0;
			$options   = array('conditions' => array('Payment.client_id' => "$client_id"),
							   'order'      => array('Payment.periodo_pago'=>'DESC') 
							  );
			$xPagos = $this->Payment->find('all',$options);



			foreach($xPagos as $xp){
				$periodo_pago = $xp['Payment']['periodo_pago'];
				$Pagos[$periodo_pago]['id']         = $xp['Payment']['id'];
				$Pagos[$periodo_pago]['fecha_pago'] = $xp['Payment']['fecha_pago'];
				$Pagos[$periodo_pago]['importe']    = $xp['Payment']['importe'];
				$Pagos[$periodo_pago]['plan']       = $xp['Plan']['name'];
				$Pagos[$periodo_pago]['plan_id']    = $xp['Plan']['id'];
				$Pagos[$periodo_pago]['name_show']    = $xp['Plan']['name_show'];
				$Pagos[$periodo_pago]['accede_hasta'] = $xp['Payment']['accede_hasta'];
				$Pagos[$periodo_pago]['moneda']     = $xp['Money']['iso_mp'];
				
				if (isset($Periodos[$periodo_pago]) ) { unset($Periodos[$periodo_pago]); }


				// Si registra deuda, muestra el FLASH
				if ($xp['Payment']['accede_hasta']>time() AND empty($xp['Payment']['fecha_pago']) ) {
					$this->Session->setFlash(__("El plan vigente registra deuda. Podrá seguir utilizando el servicio hasta el ".date("d/m/Y",$xp['Payment']['accede_hasta']), true), 'default', array('class' => 'error-message'));
				}				
			}	
			
			if(!empty($Periodos)) {
				foreach($Periodos as $clave=>$valor) {
					$Pagos[$clave]['id']           = 0;
					$Pagos[$clave]['fecha_pago']   = 0;
					$Pagos[$clave]['importe']      = $PlanActivo['Plan']['precio'];
					$Pagos[$clave]['plan']         = $PlanActivo['Plan']['name'];
					$Pagos[$clave]['plan_id']      = $PlanActivo['Plan']['id'];
					$Pagos[$clave]['moneda']       = $PlanActivo['Plan']['Money']['iso_mp'];
					$Pagos[$clave]['name_show']    = $PlanActivo['Plan']['name_show'];
					$operacion_id                  = $client_id.'-'.$PlanActivo['Plan']['id'].'-'.$clave;
					
				
				}
			}
			
			krsort($Pagos);
		


		}	
		$this->set('Pagos',$Pagos);
//		pr($Pagos);
	
	}


	function impago(){
		$this->layout = 'default_front';

		$periodo_impago = $_SESSION['periodo_impago'];
		$client_id = $this->Session->read('ClientesUsuarioLogueado.id'); // $_SESSION['Client']['id'];
		$user_id   = $this->Auth->user('id'); //$_SESSION['Auth']['User']['id'];
        $this->Session->delete('User');
        $this->Session->delete('ClientesUsuarioLogueado');
        $this->Session->delete('UltimoUpdateUsuario_'.$this->Session->read('Auth.User.id'));
        $this->Session->delete('ProfesionalSeleccionado');
        $this->Session->destroy();
		
		$this->User->unbindModel( array('belongsTo' => array('Update') ) );
		$this->User->unbindModel( array('hasMany' => array('Agenda', 'Combo','Estadistica','Evolution','License','Person','PeoplePractice','PeopleProblem','PeopleRecomendation','PeopleSign','PeopleVademecum','Problem','Result','Segment','SpecialtiesUser','Turn') ) );
        $User = $this->User->read(null,$user_id);

		
		$this->loadModel('ClientsPlan');
		$this->loadModel('Payment');

		$Pagos = $this->Payment->read(null,$periodo_impago);

//pr($xPagos);

		$this->set('User',$User);
		$this->set('Pagos',$Pagos);

	
	} // end function impagos



	function upgrade($paso2='') {
        $this->layout = 'default_front';

		$client_id = $this->Session->read('ClientesUsuarioLogueado.id'); // $_SESSION['Client']['id'];
		$this->set('client_id',$client_id);		

		$this->loadModel('ClientsPlan');
		$plan_actual = $this->ClientsPlan->find('first', array(
						'conditions' => array(
										'ClientsPlan.client_id' => $client_id,
										'ClientsPlan.activo'    => 1,
						), 'recursive' => 1

						));

		$Planes = $this->Plan->find('all', array(
						'conditions' => array(
										'Plan.activo ' => 1,
						), 
						'order' => array(
										'Plan.precio ' => 'ASC',
						), 
						'recursive' => 1
					));
		$this->set('Planes',$Planes);

		// ----------------------------------------------------------------------------------
		//                                          Obtiene la cantidad de pacientes actuales 
		// ----------------------------------------------------------------------------------
		$this->loadModel('ClientsPerson');
		$sql = "select count(clients_people.id) as cuantos 
			from clients_people 
			left join people on people.id = clients_people.person_id
			where client_id='$client_id' and people.stateperson_id='1'";
		$x   = $this->ClientsPerson->query($sql);
		$cantidad['pacientes_actuales'] = $x[0][0]['cuantos'];

		// ----------------------------------------------------------------------------------
		//                                                           Tiene Referidos Activos? 
		// ----------------------------------------------------------------------------------
		$this->loadModel('Referer');
		$sql = "select count(id) as cuantos from referers where client_id='$client_id' and cliente_referido_id > 0";
		$x   = $this->Referer->query($sql);
		$cantidad['referidos_vigentes'] = $x[0][0]['cuantos'] * 50;

		// ----------------------------------------------------------------------------------
		//                                                      La cantidad de GB almacenados
		// ----------------------------------------------------------------------------------
		$this->loadModel('Adjunto');
		$sql = "select sum(size_kb) as cuantos from adjuntos where client_id='$client_id' and staterecord_id IN(1,3);";

		$x   = $this->Adjunto->query($sql);
		$cantidad['kb_usados'] = $x[0][0]['cuantos'] / 1024 / 1024; // Expresados en GB

		// ----------------------------------------------------------------------------------
		//                                                             La cantidad de Medicos 
		// ----------------------------------------------------------------------------------
		$rol_medico = 4; // id del rol de medico en rols

		$this->loadModel('RolsUser');
		$rols = $this->RolsUser->find('all', array(
									      'conditions' => array(
													           'RolsUser.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													           'RolsUser.rol_id'    => $rol_medico
	   															)
		  											) 
		  							);
		if ($rols){
			$this->loadModel('ClientsUser');
			foreach($rols as $clave=>$valor) {
				$user_id = $valor['RolsUser']['user_id'];

				$ClientUser = $this->ClientsUser->find('first', array(
															'conditions' => array(
																		'ClientsUser.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
																		'ClientsUser.user_id'   => $user_id,
																		), 
															'recursive' => -1
															)
													);
				if ( isset($ClientUser) and $ClientUser['ClientsUser']['staterecord_id'] > 1 ){
						unset($rols[$clave]);
				}
			}
		}

		$cantidad['medicos'] = count($rols);

		// ----------------------------------------------------------------------------------
		//                              La cantidad de administrativos/asistentes/secretarias
		// ----------------------------------------------------------------------------------
		$rol_medico = 4; // id del rol de medico en rols
		$this->loadModel('RolsUser');
		$rols = $this->RolsUser->find('all', array(
									      'conditions' 	=> array(
													           'RolsUser.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													           'RolsUser.rol_id !='    => $rol_medico
	   															),
									      'group' 		=> array('RolsUser.user_id'), 
		  											) 
		  							);
		if ($rols){
			$this->loadModel('ClientsUser');
			foreach($rols as $clave=>$valor) {
				$user_id = $valor['RolsUser']['user_id'];
				$ClientUser = $this->ClientsUser->find('first', array(
															'conditions' => array(
																		'ClientsUser.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
																		'ClientsUser.user_id'   => $user_id,
																		), 
															'recursive' => -1
															)
													);
				if ( isset($ClientUser) and $ClientUser['ClientsUser']['staterecord_id'] > 1 ){
					unset($rols[$clave]);
				}
			}

		}
		$cantidad['otros_roles'] = count($rols);

		$this->set('cantidad',$cantidad);		

		if(!empty($paso2)){

			$NuevoPlan = $this->Plan->find('first', array(
						'conditions' => array(
										'Plan.id' => $this->data['Plan']['Nuevo'],
						), 'recursive' => 1
						));
			
			$this->set('NuevoPlan',$NuevoPlan);		
//pr($NuevoPlan);

		}


//pr($plan_actual);
		$this->set('plan_actual',$plan_actual);		
	}	

	function confirmarupgrade() {
        $this->layout = 'default_front';

		$client_id = $this->Session->read('ClientesUsuarioLogueado.id'); // $_SESSION['Client']['id'];
		$this->set('client_id',$client_id);		

		$nuevoplan_id = $this->data['NuevoPlan'];


		if($nuevoplan_id == 0){
			$this->redirect('/clients/upgrade/');
			exit;
		}

		$this->loadModel('ClientsPlan');

		$NuevoPlan = $this->Plan->find('first', array('conditions' => array('Plan.id' => $nuevoplan_id), 'recursive' => 1	));
	
/* 

id                  int(11)     (NULL)     NO      PRI     (NULL)   auto_increment  select,insert,update,references         
client_id           int(11)     (NULL)     NO              0                        select,insert,update,references         
plan_id             int(11)     (NULL)     NO              0                        select,insert,update,references         
fecha_alta          date        (NULL)     NO              (NULL)                   select,insert,update,references         
activo              tinyint(1)  (NULL)     NO              0                        select,insert,update,references         
pacientes_actuales  int(11)     (NULL)     NO              0                        select,insert,update,references   
*/		

		$user_id   = $this->Auth->user('id'); 
		$this->loadModel('Payment');

		$Payments = $this->Payment->find('first', array(
												'conditions' => array(
																'Payment.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
																'Payment.periodo_pago' => date("Y-m"),
																), 
												'recursive' => -1
												)
										);

		if(!$Payments or (empty($Payments))) {
			$sql = "update clients_plans set activo='0' where client_id='$client_id'";
			$this->ClientsPlan->query($sql);

			$CP['id'] = 0;
			$CP['client_id'] = $client_id;
			$CP['plan_id']   = $nuevoplan_id;
			$CP['fecha_alta'] = date("Y-m-d");
			$CP['activo'] = 1;
			$this->ClientsPlan->create();
			$this->ClientsPlan->save($CP);

			$P['id']           = 0;
			$P['client_id']    = $this->Session->read('ClientesUsuarioLogueado.id');
			$P['user_id']      = $user_id;
			$P['plan_id']      = $NuevoPlan['Plan']['id'];
			$P['periodo_pago'] = date("Y-m");
			$P['money_id']     = $NuevoPlan['Plan']['money_id'];
			$P['importe']      = $NuevoPlan['Plan']['precio'];
			$P['accede_hasta'] = time()+(60*60*24*15);

			$this->Payment->create();
			$this->Payment->save($P);
			$this->Session->setFlash(__('Se actualizó correctamente el Plan y ya puede comerzar a utilizarlo. Tiene plazo hasta el '.date("d/m/Y",$P['accede_hasta']).' para realizar el pago antes de que se desactive la cuenta.', true));

		} else {
			$this->Session->setFlash(__("Ya se ha cambiado de plan", true), 'default', array('class' => 'error-message'));
		}		
			
		$this->redirect('/clients/pagos');




//pr($plan_actual);
		$this->set('plan_actual',$plan_actual);		
	}	

	
}
?>